from strategy.StrategyTemplate import StrategyTemplate
from resource.jsl_data_map import default_columns
from strategy import strategy_filter


class NearlyNew(StrategyTemplate):
    """
    次新策略:

    """
    def __init__(self):
        super(self.__class__, self).__init__()
        self.strategy_name = "次新债策略"
        self.strategy_descrption = ""

    def run(self):
        # 基础过滤，过滤掉新债、强赎、EB
        self.data = strategy_filter.filter_base(self.data)
        # sort
        self.data = self.data.loc[self.data['剩余年限'] >= 5.6]
        self.data = self.data.sort_values(by='剩余年限', ascending=False)

        # 获得默认列
        self.data = self.data[['转债名称', '转债代码', '现价', '涨跌幅', '近5日涨跌幅', '近20日涨跌幅',
                               '溢价率', '评级', '剩余年限', '成交额', '剩余规模',  '行业', '发行日期',]][:self.topN]
        # 清掉原来的索引
        # self.data_tool.reset_index(inplace=True, drop=True)
        import datetime
        curr_datetime = datetime.datetime.now()

        import pandas as pd
        data = pd.read_csv('../../resource/次新good.csv', encoding='utf8')
        data = data[['转债名称', '流通规模']]
        self.data = pd.merge(self.data, data, how='left', on=['转债名称'])
        d = self.data.pop('流通规模')
        # 利用insert方法插入取出的数据列到指定位置
        self.data.insert(10, '流通规模', d)
        self.data.reset_index(inplace=True, drop=True)
        self.data = self.data.sort_values('现价')
        self.data['上市时间(天)'] = curr_datetime - pd.to_datetime(self.data['发行日期'])
        self.data.to_excel('20230607次新.xlsx', index=None)
if __name__ == '__main__':
    ins = NearlyNew()
    # ins.topN = 10
    ins.test()

